Some database features (e.g., Fast Connection Failover and Application Continuity) rely on particular technologies such as Fast Application Notification (FAN), and require support for certain types of connection pools and database drivers in database client stacks.
As such, while these features are available to many applications, they may not be available to other applications due to restrictions within the environments of the applications.
For example, an organization may have a particular application that is certified for use with an older client driver, which restricts the organization's ability to upgrading to a newer version of the driver.
As another example, an organization may not be able to switch to a particular type of connection pool, for example, Universal Connection Pool (UCP), since the organization has already invested into a third-party connection pool, or custom solution, or the organization has no control over which connection pool to use in applications within the organization.
Even for those applications that use UCP or similar type of connection pools, the database features may not be available if those applications access a database over cloud, since FAN events cannot be sent over the internet.
Moreover, heterogeneous client applications written in different languages (e.g., JAVA, C, Python, C++) can overload a database by opening too many connections. Each application has its own connection pool and the connections are not shared among these pools, causing inefficient usage of resources and scalability issues in a cloud environment where a connection/session explosion can be expected with large-scale web and cloud deployments.
Further, a client application often needs to execute a query and make multiple roundtrips to fetch rows from a database, and the resulting rows generally cannot be reused by another client application. As a result, each client application has to execute the same query on the database to get the desired rows, which is an expensive task and increases the system response time.